<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<button></button>

<script>

    var btn = document.querySelector('button');

    // 1.普通的方法  this 指向的是 window
    function fn() {
        console.log(`普通函数this: ${this}`)
    }

    fn();

    // 2.对象的方法 this 指向的是对象 obj
    var obj = {
        sayHi: function () {
            console.log(`对象的方法this: ${this}`)
        }
    }
    obj.sayHi();

    // 3.构造函数 this 指向 ldh 这个实例对象
    function Star() {

    }

    Star.prototype.sing = () => {
    }
    var ldh = new Star();

    // 4.绑定事件的函数    --> 点击了按钮就可以调用这个函数
    // this 指向的是函数的调用者 btn 这个按钮对象
    btn.onclick = function () {

    }

    // 5.定时器函数,     定时器函数时候自动1000000ms调用一次
    // this 指向的也是 window
    window.setTimeout(() => {
    }, 1000000);

    // 6.立即执行函数     --> 立即执行函数式自动调用的
    // this 指向的也是 window
    (function () {
        console.log(`立即执行函数this: ${this}`)
    }())

</script>
</body>
</html>
